home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Surfer: Getting Started
/
Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin
/
pc
/
mac
/
bonus
/
peter_le
/
talk_sou
/
my_libra
/
myaddres.uni
next >
Wrap
Text File
|
1992-04-20
|
4KB
|
222 lines
unit MyAddressInput;
{ This program was written by Peter N Lewis, Mar 1992 in THINK Pascal 4.0.1 }
interface
uses
OOMainLoop;
const
ai_ok = 1;
ai_cancel = 2;
ai_setdefault = 3;
ai_user = 4;
ai_machine = 5;
ai_user_item = 6;
var
default_user, default_machine: str255;
type
AIObject = object(DTObject)
okon, setdefon: boolean;
procedure Create (id: integer);
override;
procedure DoItem (item: integer);
override;
procedure DoKey (modifiers: integer; ch: char; code: integer);
override;
procedure DoEditMenu (item: integer);
override;
procedure DoActivateDeactivate (activate: boolean);
override;
procedure SetOK;
procedure GetDialog;
procedure SetDialog;
procedure PackStringBlank (var s: str255);
procedure PackString (var s: str255);
procedure UnPackString (s: str255);
function IsOKOn: boolean;
function IsSetDefaultOn: boolean;
procedure DoCommand (s: str255);
end;
procedure InitAddressInput;
implementation
uses
BaseGlobals, AppGlobals, MyTypes, MyUtils, MyTEUtils, MyPreferences, MyDialogs;
var
first: boolean;
procedure InitAddressInput;
begin
first := true;
end;
procedure MyOutlineDefault (dp: dialogPtr; item: integer);
var
kind: integer;
h: handle;
r: rect;
fi: AIObject;
begin
SetPort(dp);
fi := AIObject(GetWObject(dp));
GetDItem(dp, fi.ok_item, kind, h, r);
PenSize(3, 3);
InsetRect(r, -4, -4);
if not ControlEnabled(dp, fi.ok_item) or not fi.is_active then begin
PenPat(gray);
FrameRoundRect(r, 16, 16);
PenPat(black);
end
else
FrameRoundRect(r, 16, 16);
end;
procedure AIObject.DoActivateDeactivate (activate: boolean);
begin
inherited DoActivateDeactivate(activate);
MyOutlineDefault(window, ok_item);
end;
procedure AIObject.SetOK;
var
nsetdefon: boolean;
begin
if okon <> IsOKOn then begin
okon := not okon;
HiliteItem(window, ai_ok, okon);
MyOutlineDefault(window, ai_user_item);
end;
if setdefon <> IsSetDefaultOn then begin
setdefon := not setdefon;
HiliteItem(window, ai_setdefault, setdefon);
end;
end;
procedure AIObject.SetDialog;
begin
SetItemText(window, ai_user, default_user);
SelIText(window, ai_user, 0, maxInt);
SetItemText(window, ai_machine, default_machine);
end;
procedure AIObject.GetDialog;
begin
GetItemText(window, ai_user, default_user);
GetItemText(window, ai_machine, default_machine);
end;
procedure SetDefaultString (s: str255);
begin
SetPrefsResource('STR ', defaultStrResID, handle(NewString(s)));
end;
procedure GetDefaultString (var s: str255);
var
h: handle;
rn: integer;
begin
rn := GetPrefsResource('STR ', defaultStrResID, h);
s := stringHandle(h)^^;
if rn <> -1 then
CloseResFile(rn);
end;
procedure AIObject.Create (id: integer);
var
kind: integer;
h: handle;
r: rect;
s: str255;
begin
inherited Create(id);
okon := true;
setdefon := true;
ok_item := ai_ok;
cancel_item := ai_cancel;
GetDItem(window, ai_ok, kind, h, r);
InsetRect(r, -10, -10);
SetDItem(window, ai_user_item, userItem, handle(@MyOutlineDefault), r);
if first then begin
first := false;
GetDefaultString(s);
UnpackString(s);
end;
SetDialog;
SetOK;
end;
procedure AIObject.DoItem (item: integer);
var
s: str255;
begin
case item of
ai_cancel, ai_ok, ai_setdefault: begin
if item <> ai_cancel then begin
GetDialog;
if item = ai_setdefault then begin
PackStringBlank(s);
SetDefaultString(s);
PackString(s);
if s = '?' then begin
Destroy;
ShowCursor;
exit(DoItem);
end;
end
else
PackString(s);
DoCommand(s);
end;
Destroy;
ShowCursor;
end;
otherwise
;
end;
end;
procedure AIObject.DoKey (modifiers: integer; ch: char; code: integer);
begin
SetOK;
end;
procedure AIObject.DoEditMenu (item: integer);
var
modified: boolean;
begin
inherited DoEditMenu(item);
SetOK;
end;
procedure AIObject.PackStringBlank (var s: str255);
begin
end;
procedure AIObject.PackString (var s: str255);
begin
end;
procedure AIObject.UnPackString (s: str255);
begin
end;
function AIObject.IsOKOn: boolean;
begin
end;
function AIObject.IsSetDefaultOn: boolean;
begin
end;
procedure AIObject.DoCommand (s: str255);
begin
end;
end.